Flash data memory systems read and write data to the flash memory. Reading data from the flash memory may cause nearby cells in the same memory block to change over time (such as become programmed). This is commonly known as read disturb. The threshold number of reads is generally in the hundreds of thousands of reads between intervening erase operations. If reading continually from one cell, that cell will not fail; rather, one of the surrounding cells on a subsequent read. To avoid the read disturb problem, the controller in the flash memory counts the total number of reads to a block since the last erase. When the count exceeds a target limit, the affected block is copied over to a new block, erased, and then released to the block pool. The original block is as good as new after the erase. If the controller does not intervene in time, however, a read disturb error may occur with possible data loss if the errors are too numerous to correct with an error-correcting code.
Counters that monitor the total number of reads to a block consume a lot of memory space. For example, a 4 byte counter multiplied by the number of blocks in a memory system, which can be 256K blocks in a solid state drive (SSD), equates to about 1 MB of space just to track simple read counters.